package com.hm.shopping.service;

import java.util.List;

import com.hm.common.su.bean.PageInfo;
import com.hm.common.su.bean.PageInfo.PageInfoParam;
import com.hm.shopping.def.OrderStateEnum;
import com.hm.shopping.vo.OrderLogisticsVo;
import com.hm.shopping.vo.su.BuyGoodsSnapshotVo;
import com.hm.shopping.vo.su.BuyGoodsSnapshotVo.GoodsIntroductionSnapshotVo;
import com.hm.shopping.vo.su.SubmitOrderInfoVo;

/**
 * @author shishun.wang
 * @date 2018年2月24日 上午11:11:21
 * @version 1.0
 * @describe
 */
public interface OrderService {

	/**
	 * 提交订单
	 * 
	 * @param buyerId
	 * @param submitOrderInfo
	 */
	public String submitOrder(String buyerId, List<SubmitOrderInfoVo> submitOrderInfo);

	/**
	 * 订单支付
	 * 
	 * @param orderId
	 */
	public long personalOrderPay(String snapshotId);

	/**
	 * 获取用户不同状态订单快照
	 * 
	 * @param buyerId
	 * @param orderPayState
	 * @return
	 */
	public List<BuyGoodsSnapshotVo> getBuyerGoodsSnapshots(String buyerId, OrderStateEnum orderPayState);

	/**
	 * 分页查询订单列表数据
	 * 
	 * @param pageParam
	 * @param shopsId
	 * @param orderPayState
	 * @return
	 */
	public PageInfo<GoodsIntroductionSnapshotVo> queryBuyerGoodsSnapshots(PageInfoParam pageParam, String shopsId, OrderStateEnum orderPayState);

	/**
	 * 完成订单商品发货
	 * 
	 * @param orderLogistics
	 */
	public void finishOrderCourier(OrderLogisticsVo orderLogistics);

	/**
	 * 完成订单结算自动收货
	 * 
	 * @param ordersNapshotDetailId
	 */
	public void finishOrder(String ordersNapshotDetailId);
}
